Prior art includes U.S. Pat. No. 5,363,175, assigned to the same assignee as the present invention covering distributed job scheduling of modular components. Also pending D/93465 U.S. Ser. No. 280,978 covers a controller interrogating processors for operational timing data for configuring the controller to operate in accordance with the operational timing of the processors.
Traditional product development usually begins with a core machine, typically the marking engine, and then develops modules tailored to work with the core machine. This approach produces tightly integrated machines composed of modules that are functionally interdependent. The products may be physically modular (easily separable for transportation) but they are not easily reconfigured nor can they typically be used on other products without extensive revision of the control software. With this type of development, it is difficult to use modules with any product other than the product for which they were developed. In addition to the physical considerations, for example, paper path heights, locations etc.) the modules generally have dependencies on other parts of the product, for example, user interfaces, schedulers, and paper path control. Thus, there is a need to create modules that are capable of stand alone operation and are insensitive to the neighboring modules. It is an object, therefore, of the present invention to provide a system that treats all modules uniformly, regardless of specific functions (such as feeding, finishing, and marking) and to provide open configurations, that is the number and sequence of modules is not fixed or limited.
It is another object to provide each module with a generic, uniformly described identification that is conveyed to the controller and the controller in turn composes the descriptions into a single machine description, in order that no matter the geometric configuration of the connected modules, the machine operates to complete a given job. The configuration of the modules, feeder, marker, or finisher is not pertinent. There might not even be a marker present for a machine to operate and complete a job. In other words there need not necessarily be only one marker or there need not be any marker and there may be any number of feeders or finishers.
It would also be desirable to provide a system that treats various machine modules uniformly but with the appropriate constraints. It is, therefore, an object of the present invention to treat various machine modules as transducers that have constraints specifying behavior and scheduling is accomplished by finding a sequence of transfers between the various transducer inputs and outputs that is consistent with the constraints. This allows a mix and match of markers, feeders, and finishers.
In the prior art, a machine module for a function such as to staple a set of copy sheets was very specific to the machine hardware and software architecture. This meant that the set of copy sheets delivered to the stapler must be in a very well defined orientation and format. In this configuration, only one manner of stapling was accommodated. However, with various stapling machines available from various vendors, more information is needed from the various staplers to determine if in fact a particular operation can be completed, that is, one machine might receive the set face up, staple it, and deliver the set face down. Another machine might do the same but with the output face up, another machine might not take sets in but only separate sheets. Trying to describe all possible permutations using DPA styled key words quickly becomes unmanageable.
It thus becomes desirable to provide a system wherein various permutations of various modules from various vendors can be easily expressed and understood by a control. It is an object of the present invention, therefore, to break descriptions into inputs, outputs, and the relationship between the inputs and the outputs enables the description of the machine into segments that are easily manageable. It is an object of the present invention to express capabilities of transducers which represents a machine, machine modules, or components within a machine module. The capabilities define what the transducer does, that, is identifies the kind of work unit that is entering or exiting on a given port of the transducer. It defines any constraints on timing of the work units and on attributes of the work units. It also defines the relationship between the inputs and the outputs in terms of work unit properties.
Traditionally, representing and controlling a machine was usually based upon certain assumptions about the interconnection of the machine. In particular, the assumption was that a marker module was at the center, with feeders upstream and finishers downstream from the marker with the arrangement being essentially linear. Any deviations from this linear interconnection in the prior were not possible, generally, without an almost total redesign of hardware and software. It would be desirable therefore to be able to represent and interconnect modules in a variety of modes deviating from the traditional linear interconnection and yet have the control recognize the particular interconnection and provide the appropriate response. It is an object of the invention, therefore to be able to interconnect modules in a variety of manners and to represent the interconnection in graphical form including mergers, forks, and parallel operations. It is another object, for any interconnection, including a connection of modules excluding a marker module, to be able to recognize the interconnection and suitably control the machine so formed to complete requested jobs. It is an object of the present invention for each module to communicate interconnection status to the master control which has initiated a request for interconnection status, and to be able to set up a control operation to direct the interconnected modules to complete assigned tasks.
In prior art machines scheduling of capabilities such as marking the front side of a page and also marking on the back side of the page were handled as individual task assignments and not viewed as a control task as a whole. It would be desirable, therefore, to treat interdependent tasks making up a general operation as a commitment group. A commitment group can be assigned to a task or series of tasks only if each capability or element within the commitment group is or can be committed. It is an object therefore for any machine configuration or arbitrary interconnection of modules to operate under the concept of a commitment group in the operation and control of the machine wherein a task requiring the commitment of one or several elements requires the commitment of each of the elements.